border-image: Don't use NEAREST filtering
authorBenjamin Otte <otte@redhat.com>
Tue, 7 Jun 2011 23:58:46 +0000 (01:58 +0200)
committerBenjamin Otte <otte@redhat.com>
Thu, 9 Jun 2011 03:51:54 +0000 (05:51 +0200)
use EXTEND_PAD instead to avoid borders.

gtk/gtkborderimage.c

index cf9da9cf0a804b4b32a63b9fa82344e81a9363b0..bc9e3a634431b58eee6200734020f9cbf9b1d7b9 100644 (file)
@@ -203,16 +203,17 @@ render_corner (cairo_t         *cr,
 
   cairo_save (cr);
 
+  cairo_rectangle (cr, corner_x, corner_y, corner_width, corner_height);
+
   cairo_translate (cr, corner_x, corner_y);
   cairo_scale (cr,
                corner_width / image_width,
                corner_height / image_height);
+
   cairo_set_source_surface (cr, surface, 0, 0);
+  cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_PAD);
 
-  /* use the nearest filter for scaling, to avoid color blending */
-  cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST);
-
-  cairo_paint (cr);
+  cairo_fill (cr);
 
   cairo_restore (cr);
 }
@@ -405,11 +406,10 @@ render_border (cairo_t              *cr,
   cairo_translate (cr,
                    target_x, target_y);
 
-  /* use the nearest filter for scaling, to avoid color blending */
-  cairo_pattern_set_filter (pattern, CAIRO_FILTER_NEAREST);
-  
   if (repeat_pattern)
     cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REPEAT);
+  else
+    cairo_pattern_set_extend (pattern, CAIRO_EXTEND_PAD);
 
   cairo_scale (cr,
                target_width / surface_width,